<?php

include_once('../lib/check_connection.php');

include_once('../exception/gestor_excepciones.php');

include_once('gestor_noticias_service.php');

/**
 * Clase que lanza la ejecución de la aplicación.
 *
 */
class principal
{
	private $gestor_noticias;
	private $idiomas;
	
/**
	 * Lee un fichero externo que contiene todos los idiomas en los que
	 * se ha de examinar la página web.
	 *
	 * @return unknown
	 */
	public function cargar_idiomas()
	{
		//Constante para indicar donde guardaremos el fichero con los idiomas.
		$existe_fichero = true;				
		$this->idiomas[]=array();
		$num_linea=0;
		
		try {
			if(!file_exists(directorio_fichero))
			{
				throw new Exception;
			}
		} catch (Exception $ex) {
			$gestor_excepciones = gestor_excepciones::get_instance();
			echo $gestor_excepciones->mostrar_mensaje(1),"<br/>";
			//Si no existe el fichero de idiomas cargamos nosotros unos por defecto.
			/*"da","de","et","en","es","fr","it","lv","lt","hu","mt","nl","pl","pt","ro","sk","sl","fi","sv","cs","el","bg"*/
    		$this->idiomas = array("es");    		
    		$existe_fichero = false;
		}
		if($existe_fichero)
		{
			$descriptor = fopen(directorio_fichero,"r");
			//En caso de haber abierto el fichero:
			while(!feof($descriptor)) {
				if ($linea = fgets($descriptor)) {
					//Guardo el texto de la linea en el fichero
					$this->idiomas[$num_linea]= trim($linea);
					//Aumento la variable número de líneas
					$num_linea++;
				}
			}
			fclose($descriptor);		
			return $cargado;
		}
	}
	
	/**
	 * Método que inicia la ejecución de la aplicación.
	 *
	 */	
	public function ejecutar()
	{
	//Comprobamos si hay conexión a internet. En caso negativo abortaremos la ejecución.
		try
		{
			$check_connection = new check_connection();
			if(!$check_connection->is_connected())
			{
				throw new Exception;
			}
		} catch (Exception $ex) {
			$gestor_excepciones = gestor_excepciones::get_instance();
			echo $gestor_excepciones->mostrar_mensaje(0),"<br/>";
			exit(1);
		}		
		$this->cargar_idiomas();
		
		foreach ($this->idiomas as $idioma) {
			echo "Noticias en idioma $idioma.<br/>";
			
			//Crear una instancia de gestor_noticias
			$gestor_noticias = new gestor_noticias_service();
			
			//Obtener el número total de páginas aquí:
			$num_maximo = $gestor_noticias->obtener_numero_paginas($idioma);			
			
			//En vez de <1 poner <$num_maximo
			for($num_pagina=0;$num_pagina<1;$num_pagina++) {				
				echo "La memoria ocupada en el bucle es ", memory_get_usage(), " bytes.<br/><br/>";
				$salida_principal = $gestor_noticias->recorrer_paginas($idioma,$num_pagina);				
				$array_noticias = $gestor_noticias->extraer_noticias($salida_principal);				
				$gestor_noticias->guardar_noticias($idioma,$num_pagina,$array_noticias);				
			}			
		}
		echo "* Terminamos la ejecución.<br/>";
	}
	
}

?>